#pragma once
#include "DataTypes.h"
#include "RenderComponent.h"
/**
* This class draws a 3D cube with vertex coloring. The color
* of every face can be set but will default to red for the faces
* that are perpendicular to the X axis , green for the faces that
* are perpendicular to the Y axis and blue for the faces that
* are perpendicular to the Z axis.
*/
class VertexColorCube: public RenderComponent
{
public:
	/**
	* @param width the size along the X axis
	* @param length the size along the Y axis.
	* @param height the size along the Z axis.
	*/
	VertexColorCube(float width, float length, float height);
	/**
	* Destroys the VertexColorCube object.
	*/
	virtual ~VertexColorCube(void);
	/**
	* Draws the cube onto the current render context.
	*/
	virtual void Draw();
	/**
	* Initialize the component.
	*/
	virtual void Init();
	/**
	* Sends one vertex to the opengl context
	*/
	void Vertex(float3& v);

private:
	float m_Width;
	float m_Length;
	float m_Height;

	float3 m_ps[8];
};

